package com.rybbaby.tss.platform.sysCitys.entity;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;

/**
 * @description 全球城市
 * 
 * @author 谢进伟
 * 
 * @createDate 2016-12-12 下午1:39:31
 */
@Entity
@Table(name = "sys_citys")
@DynamicUpdate(true)
@DynamicInsert(true)
public class SysCitys implements Serializable {
	
	private static final long serialVersionUID = 15770404994813L;
	
	/** 主键 **/
	private String id;
	/** 父id **/
	private String pId;
	/** 国家 **/
	private String country;
	/** 名称 **/
	private String name;
	/** 首写字母 **/
	private String firstChar;
	/** 全拼 **/
	private String pinyin;
	/** 权重 **/
	private Integer weight;
	/** 是否禁用 **/
	private Boolean isForbidden;
	/** 经度 **/
	private Double longitude;
	/** 纬度 **/
	private Double latitude;
	/** 邮政编码 **/
	private String zipCode;
	/** 区号 **/
	private String cityCode;
	/** 0:国家,1:省/直辖市,2:市,3:区县 **/
	private Integer levelType;
	/** 简称 **/
	private String shortName;
	/** 全称 **/
	private String mergerName;
	/** 大区 **/
	private String region;
	/** 版本 **/
	private Integer version;
	
	/**
	 * 方法: 取得主键
	 *
	 * @return java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "sys_citysIDGenerator" , strategy = GenerationType.AUTO)
	@GenericGenerator(name = "sys_citysIDGenerator" , strategy = "uuid")
	@Column(name = "id", nullable= false, length = 32)
	public String getId() {
		return this.id;
	}
	
	/**
	 * 方法: 设置主键
	 *
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}
	
	/**
	 * 方法: 取得父id
	 *
	 * @return java.lang.String 父id
	 */
	@Column(name = "pId", nullable= true, length = 32)
	public String getpId() {
		return this.pId;
	}
	
	/**
	 * 方法: 设置父id
	 *
	 * @param pId 父id
	 */
	public void setpId(String pId) {
		this.pId = pId;
	}
	
	/**
	 * 方法: 取得国家
	 *
	 * @return java.lang.String 国家
	 */
	@Column(name = "country", nullable= true, length = 100)
	public String getCountry() {
		return this.country;
	}
	
	/**
	 * 方法: 设置国家
	 *
	 * @param country 国家
	 */
	public void setCountry(String country) {
		this.country = country;
	}
	
	/**
	 * 方法: 取得名称
	 *
	 * @return java.lang.String 名称
	 */
	@Column(name = "name", nullable= true, length = 50)
	public String getName() {
		return this.name;
	}
	
	/**
	 * 方法: 设置名称
	 *
	 * @param name 名称
	 */
	public void setName(String name) {
		this.name = name;
	}
	
	/**
	 * 方法: 取得首写字母
	 *
	 * @return java.lang.String 首写字母
	 */
	@Column(name = "firstChar", nullable= true, length = 1)
	public String getFirstChar() {
		return this.firstChar;
	}
	
	/**
	 * 方法: 设置首写字母
	 *
	 * @param firstChar 首写字母
	 */
	public void setFirstChar(String firstChar) {
		this.firstChar = firstChar;
	}
	
	/**
	 * 方法: 取得全拼
	 *
	 * @return java.lang.String 全拼
	 */
	@Column(name = "pinyin", nullable= true, length = 100)
	public String getPinyin() {
		return this.pinyin;
	}
	
	/**
	 * 方法: 设置全拼
	 *
	 * @param pinyin 全拼
	 */
	public void setPinyin(String pinyin) {
		this.pinyin = pinyin;
	}
	
	/**
	 * 方法: 取得权重
	 *
	 * @return java.lang.Integer 权重
	 */
	@Column(name = "weight", nullable= true, length = 11)
	public Integer getWeight() {
		return this.weight;
	}
	
	/**
	 * 方法: 设置权重
	 *
	 * @param weight 权重
	 */
	public void setWeight(Integer weight) {
		this.weight = weight;
	}
	
	/**
	 * 方法: 取得是否禁用
	 *
	 * @return java.lang.Boolean 是否禁用
	 */
	@Column(name = "isForbidden", nullable= true, length = 1)
	public Boolean getIsForbidden() {
		return this.isForbidden;
	}
	
	/**
	 * 方法: 设置是否禁用
	 *
	 * @param isForbidden 是否禁用
	 */
	public void setIsForbidden(Boolean isForbidden) {
		this.isForbidden = isForbidden;
	}
	
	/**
	 * 方法: 取得经度
	 *
	 * @return java.lang.Double 经度
	 */
	@Column(name = "longitude", nullable= true, length = 22)
	public Double getLongitude() {
		return this.longitude;
	}
	
	/**
	 * 方法: 设置经度
	 *
	 * @param longitude 经度
	 */
	public void setLongitude(Double longitude) {
		this.longitude = longitude;
	}
	
	/**
	 * 方法: 取得纬度
	 *
	 * @return java.lang.Double 纬度
	 */
	@Column(name = "latitude", nullable= true, length = 22)
	public Double getLatitude() {
		return this.latitude;
	}
	
	/**
	 * 方法: 设置纬度
	 *
	 * @param latitude 纬度
	 */
	public void setLatitude(Double latitude) {
		this.latitude = latitude;
	}
	
	/**
	 * 方法: 取得邮政编码
	 *
	 * @return java.lang.String 邮政编码
	 */
	@Column(name = "zipCode", nullable= true, length = 50)
	public String getZipCode() {
		return this.zipCode;
	}
	
	/**
	 * 方法: 设置邮政编码
	 *
	 * @param zipCode 邮政编码
	 */
	public void setZipCode(String zipCode) {
		this.zipCode = zipCode;
	}
	
	/**
	 * 方法: 取得区号
	 *
	 * @return java.lang.String 区号
	 */
	@Column(name = "cityCode", nullable= true, length = 50)
	public String getCityCode() {
		return this.cityCode;
	}
	
	/**
	 * 方法: 设置区号
	 *
	 * @param cityCode 区号
	 */
	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}
	
	/**
	 * 方法: 取得0:国家,1:省/直辖市,2:市,3:区县
	 *
	 * @return java.lang.Integer 0:国家,1:省/直辖市,2:市,3:区县
	 */
	@Column(name = "levelType", nullable= true, length = 11)
	public Integer getLevelType() {
		return this.levelType;
	}
	
	/**
	 * 方法: 设置0:国家,1:省/直辖市,2:市,3:区县
	 *
	 * @param levelType 0:国家,1:省/直辖市,2:市,3:区县
	 */
	public void setLevelType(Integer levelType) {
		this.levelType = levelType;
	}
	
	/**
	 * 方法: 取得简称
	 *
	 * @return java.lang.String 简称
	 */
	@Column(name = "shortName", nullable= true, length = 100)
	public String getShortName() {
		return this.shortName;
	}
	
	/**
	 * 方法: 设置简称
	 *
	 * @param shortName 简称
	 */
	public void setShortName(String shortName) {
		this.shortName = shortName;
	}
	
	/**
	 * 方法: 取得全称
	 *
	 * @return java.lang.String 全称
	 */
	@Column(name = "mergerName", nullable= true, length = 255)
	public String getMergerName() {
		return this.mergerName;
	}
	
	/**
	 * 方法: 设置全称
	 *
	 * @param mergerName 全称
	 */
	public void setMergerName(String mergerName) {
		this.mergerName = mergerName;
	}
	@Column(name = "region", nullable = true, length = 255)
	public String getRegion() {
		return region;
	}

	public void setRegion(String region) {
		this.region = region;
	}
	/**
	 * 方法: 取得版本
	 *
	 * @return java.lang.Integer 版本
	 */
    @Version
	@Column(name = "version", nullable= true, length = 11)
	public Integer getVersion() {
		return this.version;
	}
	
	/**
	 * 方法: 设置版本
	 *
	 * @param version 版本
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}
}